ALB와 NLB를 직접 통합하여 AWS PrivateLink 및 고정 IP 주소를 활성화 해보자
소개
안녕하세요! 클래스메소드 금상원 입니다. 이번 블로그에서는 ALB와 NLB를 직접 통합하여 AWS PrivateLink 및 고정 IP 주소를 활성화 해보도록 하겠습니다.
목표
ALB와 NLB를 직접 통합하여 AWS PrivateLink 및 고정 IP 주소를 활성화
구성도
준비
Route53
무료 도메인으로 AWS Route53에 도메인을 등록하고 AWS Certificate Manager로 SSL 인증서 설정해 보기
Amazon VPC 프라이빗 DNS 이름 도메인 확인 TXT 레코드
VPC
VPC명 | CIDR |
---|---|
client-vpc | 10.0.0.0/16 |
server-vpc | 20.0.0.0/16 |
Route
Route명 | VPC명 |
---|---|
client-public-route | client-vpc |
server-public-route | server-vpc |
server-private-route | server-vpc |
Subnet
Subnet명 | CIDR | 가용영역 | Route |
---|---|---|---|
client-public-subnet | 10.0.0.0/24 | ap-northeast-1c | client-public-route |
server-public-subnet | 20.0.0.0/24 | ap-northeast-1d | server-public-route |
server-private-subnet-1 | 20.0.1.0/24 | ap-northeast-1d | server-private-route |
server-private-subnet-2 | 20.0.2.0/24 | ap-northeast-1c | server-private-route |
Security Groups
alb-sg (VPC : server-vpc)
유형 | 프로토콜 | 포트 | 소스 |
---|---|---|---|
HTTP | TCP | 80 | 0.0.0.0/0 |
ec2-sg (VPC : server-vpc)
유형 | 프로토콜 | 포트 | 소스 |
---|---|---|---|
HTTP | TCP | 80 | alb-sg |
client-ec2 (VPC : client-vpc)
유형 | 프로토콜 | 포트 | 소스 |
---|---|---|---|
HTTP | SSH | 22 | my-ip |
EC2
server-ec2-1 / server-ec2-1
OS | 유형 | VPC | 서브넷 | 보안그룹 |
---|---|---|---|---|
Amazone Linux2 | t2.micro | server-vpc | server-private-subnet-1 | ec2-sg |
Amazone Linux2 | t2.micro | server-vpc | server-private-subnet-2 | ec2-sg |
client-ec2
OS | 유형 | VPC | 서브넷 | 보안그룹 |
---|---|---|---|---|
Amazone Linux2 | t2.micro | client-vpc | client-public-subnet | client-ec2 |
#!/bin/bash # Use this for your user data (script from top to bottom) # install httpd (Linux 2 version) yum update -y yum install -y httpd systemctl start httpd systemctl enable httpd echo "<h1>Hello World from $(hostname -f)</h1>" > /var/www/html/index.html
대상그룹
alb-tg
EC2명 |
---|
server-ec2-1 |
server-ec2-1 |
nlb-tg
ALB명 |
---|
server-alb |
nlb-tg은 아래의 ALB를 구축한 후 만들어 주세요!
ALB
ALB명 | VPC | 서브넷1 | 서브넷2 | 보안그룹 | 리스너 | 대상그룹 |
---|---|---|---|---|---|---|
server-alb | server-vpc | server-private-subnet-1 | server-private-subnet-2 | alb-sg | HTTP:80 | test-tg |
nlb-tg(타켓그룹)생성
대상 유형 선택에서 Aplication Load Balancer를 선택합니다.
대상 그룹 이름을 입력하시고 VPC는 ALB와 같은 server-vpc를 선택합니다.
NLB구축
로드 밸런서 이름을 입력합니다.
VPC는 ALB와 같은 server-vpc를 선택하고 매핑은 퍼블릭 서브넷을 선택합니다.
타겟 그룹을 위에서 만든 nlb-tg를 선택합니다.
엔드포인트 서비스
VPC화면에서 엔드포인트 서비스로 들어가서 엔드포인트 서비스 생성 버튼을 클릭합니다.
이름 을 입력합니다.
프라이빗 DNS 이름을 서비스에 연결을 체크 하시고 아래에 위에서 생성한 Route53도메인을 입력합니다.
작업 탭 에서 프라이빗 DNS 이름에 대한 도메인 소유권 확인을 클릭한 후 도메인 확인 상태가 verification이 되는 것을 확인 합니다.
엔드포인트
먼저 엔드포인트 서비스 화면에서 세부정보 탭 에서 서비스 이름을 복사합니다.
VPC화면에서 엔드포인트로 들어가서 엔드포인트 생성 버튼을 클릭합니다.
Name tag를 입력하고 기타 엔드포인트 서비스를 선택합니다.
Service name에 위서 복사한 서비스 이름을 붙여넣습니다. 그 후 VPC는 위에서 생성한 client-vpc를 선택합니다.
서브넷 과 보안 그룹을 선택합니다.
엔드포인트 서비스 화면으로 돌아가서 엔드포인트 연결 탭의 작업 탭애서 엔드포인트 연결 요청 수락을 클릭합니다.
확인
위의 DNS names 둘중 하나를 복사합니다.
client-ec2에 접속하여 아래의 명령어를 입력하여 획인합니다.
dig +short DNS names
curl DNS names
마무리
이번 블로그에서는 ALB와 NLB를 직접 통합하여 AWS PrivateLink 및 고정 IP 주소를 활성화 하는 방법에 대해 알아 보았습니다. 평소에 VPC간 프라이빗 통신이 필요하신 분들에게 도움이 되었으면 좋겠습니다. 이번 내용에서는 Route53생성 부터 레코드 등록등 힘든 부분이 많았습니다만 aws의 문서나 여러 블로그를 참고 하여 공부도 많이 되었고 해결 할 수 있었습니다.
참고 자료
Application Load Balancer-type Target Group for Network Load Balancer
인터페이스 엔드포인트에 대한 VPC 종단점 서비스 구성 생성
무료 도메인으로 AWS Route53에 도메인을 등록하고 AWS Certificate Manager로 SSL 인증서 설정해 보기
EndPoint Service를 이용해서 PrivateLink 구성 해보기
Application Load Balancer는 이제 네트워크 로드 밸런서와 직접 통합하여 AWS PrivateLink 및 고정 IP 주소를 활성화합니다.